Trusted user circles

ABSTRACT

A trusted user circle server for encryption key distribution and authentication support, as well as a client-side application which resides on user&#39;s devices are disclosed. In particular, the trusted user circle server manages a repository for static public keys (SPUK) which are used for authentication and secure distribution of a dynamic private context key (DPCK) used for the end-to-many encryption. Accordingly, posting users encrypt posted document using the DPCK and viewing users retrieve the DPCK to decrypt the posted document. These keys are associated to the trusted user circle and are generated dynamically for a given circle policy context (CPC). The CPC is an identifier that represents a group of members of a trusted user circle. It changes whenever any member of the trusted user circle leave it, when a new trusted user circle is created or when the DPCK expires after a pre-determined period of time.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims benefit of priorityunder 35 U.S.C. §120 to U.S. application Ser. No. 14/294,080, entitled“Trusted User Circles,” filed on Jun. 2, 2014, now U.S. Pat. No.9,213,855, issued on Dec. 15, 2015, which is incorporated herein byreference in its entirety.

BACKGROUND

A social network is a social structure (e.g., community) made of members(e.g., a person or a user) connected by social relationships such asfriendship, kinship, relationships of beliefs, knowledge, prestige,culture, etc. Individual computers linked electronically are used toform the basis of computer mediated social interaction and networkingwithin a social network community. A social networking service is aplatform to build computer mediated social networks. Throughout thisdisclosure, the terms “social network” and “social network service” maybe used interchangeably and refer to a computer mediated social networkhaving computer servers to facilitate social interaction among membersof the social network. Many social networks are web-based that alloweach individual user to create a public profile, to create a list ofusers (referred to as social network friends) with whom to shareinformation, and to exchange social network messages (e.g., e-mail andinstant messaging) as well as share user posted documents (e.g.,photo/video/sharing and blog posting) among social network friends. In abroader sense, the term “social network” may also refer to other onlinecommunities, such as Internet forum, or message board, that is an onlinediscussion site where users hold conversations in the form of postedmessages.

Examples of computer mediated social network services include Facebook®(a registered trademark of Facebook, Inc., Palo Alto, Calif.), Myspace®(a registered trademark of Myspace, Inc., Beverly Hills, Calif.),Twitter (a registered trademark of Twitter, Inc., San Francisco,Calif.), LinkedIn® (a registered trademark of LinkedIn, Ltd., MountainView, Calif.), etc. Certain social network services provide applicationprogramming interfaces (APIs) allowing programmatic retrieval of socialnetwork messages by third party developers.

Public-key cryptography, also known as asymmetric cryptography, is aclass of cryptographic algorithms which require two separate keys, oneof which is secret (or private) and one of which is public. Althoughdifferent, the two parts of this key pair are mathematically linked. Thepublic key is used for encryption; whereas the private key is used fordecryption. The term “asymmetric” sterns from the use of different keysto perform these opposite functions, each the inverse of the other. Incontrast, symmetric cryptography relies on the same key to perform bothencryption and decryption.

SUMMARY

In general, in one aspect, the invention relates to a method to viewuser posted documents on a website. The method includes generating, byan posting user device used by an posting user, first metadata of afirst document, wherein the first metadata identifies a trusted usercircle comprising the posting user and a viewing user, encrypting, bythe posting user device based on a dynamic private context key (DPCK) ofthe trusted user circle, the first document to generate a firstencrypted document, wherein the DPCK is provided to the trusted usercircle, sending, by the posting user device to the website, the firstencrypted document associated with the first metadata, wherein the firstencrypted document associated with the first metadata is posted on thewebsite as a first posted document, wherein the first posted document isobtained from the website by a viewing user device used by the viewinguser, analyzing, by the viewing user device, the first metadata in thefirst posted document to identify the DPCK based on the viewing userbeing within the trusted user circle, and decrypting, by the viewinguser device in response to identifying the DPCK and based on the DPCK,the first posted document to retrieve the first document to present tothe viewing user.

In general, in one aspect, the invention relates to a system to a systemfor viewing user posted documents on a website. The system includes (i)a trusted user circle server separate from the website and configured tomaintain membership information of a trusted user circle, wherein thetrusted user circle comprises an posting user and a viewing user, andprovide a dynamic private context key (DPCK) of the trusted user circleto members of the trusted user circle, (ii) an posting user device usedby the posting user and configured to generate first metadata of a firstdocument, wherein the first metadata identifies the trusted user circle,encrypt, based on the DPCK obtained from the trusted user circle server,the first document to generate a first encrypted document, and send, tothe website, the first encrypted document associated with the firstmetadata, wherein the first encrypted document associated with the firstmetadata is posted on the website as a first posted document, and (iii)a viewing user device used by the viewing user and configured to obtainthe first posted document from the website, analyze the first metadatain the first posted document to identify the DPCK based on the viewinguser being within the trusted user circle, and decrypt, in response toidentifying the DPCK and based on the DPCK, the first posted document toretrieve the first document to present to the viewing user.

In general, in one aspect, the invention relates to a non-transitorycomputer readable medium storing instructions for viewing user posteddocuments on a website, the instructions when executed by a computerprocessor comprising functionality to generate, by an posting userdevice used by an posting user, first metadata of a first document,wherein the first metadata identifies a trusted user circle comprisingthe posting user and a viewing user, encrypt, by the posting user devicebased on a dynamic private context key (DPCK) of the trusted usercircle, the first document to generate a first encrypted document,wherein the DPCK is provided to the trusted user circle, send, by theposting user device to the website, the first encrypted documentassociated with the first metadata, wherein the first encrypted documentassociated with the first metadata is posted on the website as a firstposted document, wherein the first posted document is obtained from thewebsite by a viewing user device used by the viewing user, analyze, bythe viewing user device, the first metadata in the first posted documentto identify the DPCK based on the viewing user being within the trusteduser circle, and decrypt, by the viewing user device in response toidentifying the DPCK and based on the DPCK, the first posted document toretrieve the first document to present to the viewing user.

Other aspects of the invention will be apparent from the followingdetailed description and the appended claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 shows a schematic diagram of a system of trusted user circles inaccordance with one or more embodiments of the invention.

FIGS. 2A and 2B show a flowchart of a method of trusted user circles inaccordance with one or more embodiments of the invention.

FIGS. 3A and 3B show an example of trusted user circles in accordancewith one or more embodiments of the invention.

FIG. 4 shows a diagram of a computing system in accordance with one ormore embodiments of the invention.

DETAILED DESCRIPTION

Specific embodiments of the invention will now be described in detailwith reference to the accompanying figures. Like elements in the variousfigures are denoted by like reference numerals for consistency.

In the following detailed description of embodiments of the invention,numerous specific details are set forth in order to provide a morethorough understanding of the invention. However, it will be apparent toone of ordinary skill in the art that the invention may be practicedwithout these specific details. In other instances, well-known featureshave not been described in detail to avoid unnecessarily complicatingthe description.

Embodiments of the invention provide a trusted user circle server forencryption key distribution, and authentication support, as well as aclient-side application which resides on user's devices. In one or moreembodiments, the trusted user circle server manages a repository forstatic public keys (SPUK) which are used for authentication and securedistribution of a dynamic private context key (DPCK) used for theend-to-many encryption. Accordingly, posting users encrypt posteddocument using the DPCK and viewing users retrieve the DPCK to decryptthe posted document. These keys are associated to the trusted usercircle and are generated dynamically for a given circle policy context(CPC). The CPC is an identifier that represents a group of members of atrusted user circle. It changes whenever any member of the trusted usercircle leave it, when a new trusted user circle is created or when theDPCK expires after a pre-determined period of time.

FIG. 1 depicts a schematic block diagram of a system (100) in accordancewith one or more embodiments of the invention. In one or moreembodiments of the invention, one or more of the modules and elementsshown in FIG. 1 may be omitted, repeated, and/or substituted.Accordingly, embodiments of the invention should not be consideredlimited to the specific arrangements of modules shown in FIG. 1. Thesystem (100) of FIG. 1 depicts the components of a social survey systemin accordance with embodiments disclosed herein.

As shown in FIG. 1, the system (100) includes various components coupledvia computer network (110), These components include users (e.g., user A(101 a), user B (101 b), user C (101 c), etc.) and corresponding userdevices (e.g., user device A (102 a), user device B (102 b), user deviceC (102 c), etc.), a website (104), and a trusted user circle server(120). In one or more embodiments, the computer network (110) mayinclude wired and/or wireless portions of the Internet and/or other datacommunications networks such as wide area networks (WANs), local areanetworks (LANs), etc. As shown, a portion of the users may be members ofvarious trusted user circles that allow members to join or exit fromtime to time. For example, the user A (101 a), user B (101 b), user C(101 c), etc. are members of the trusted user circle (103 a), while theuser A (101 a), user B (101 b), etc. remain members of the updatedtrusted user circle (103 b) subsequent to the user C (101 c) exiting thetrusted user circle (103 a). Although only the trusted user circle (103a) and updated trusted user circle (103 b) are shown in FIG. 1, otheroverlapping or non-overlapping trusted user circles (not shown) may alsoexist in the system (100). In addition, certain users (not shown) maynot be members of any trusted user circle but merely users of thewebsite (104). Throughout this disclosure, an action performed by theuser device as directed by the user may be referred to as beingperformed by the user of the user device.

Further as shown in FIG. 1, the trusted user circle server (120)includes a user manager (122), trusted user circle manager (124), andrepository (130). In one or more embodiments, the user manager (122) andtrusted user circle manager (124) include software, hardware, or acombination thereof that collectively perform tasks of the trusted usercircle server (120) based on information stored in the repository (130).The repository (130) may be used for storing trusted user circleprofiles of various trusted user circles and user keys (134) accessibleto members of various trusted user circles. As shown, the trusted usercircle profile A (136 a) includes information associated with thetrusted user circle (103 a) and updated versions thereof. In addition,the user keys (134) include user A keys (106 a) having static public key(SPUK) A (134 a), encrypted dynamic private context key (EDPCK) A (135a), and updated EDPCK A (136 a) of the user A (101 a), user B keys (106b) having SPUK B (134 b), EDPCK B (135 b), and updated EDPCK B (136 b)of user B (101 b), user C keys (106 c) having SPUK C (134 c) andencrypted DPCK C (135 c) of user C (101 c), and other user's keys. Therepository (130) (and/or any of the data collections stored therein) maybe a data store such as a database, a file system, one or more datastructures (e.g., arrays, link lists, tables, hierarchical datastructures, etc.) configured in a memory, an extensible markup language(XML) file, any other suitable medium for storing data, or any suitablecombination thereof. The repository (130) may be a device internal tothe trusted user circle server (120). Alternatively, the repository(130) may be an external storage device operatively connected to thetrusted user circle server (120).

In one or more embodiments, the users are individuals or persons who usethe website (104) for accessing information, such as the posted documentA (104 a), post document B (104 b), etc. The user devices include anydevice configured with computing and communication capability, such as asmart phone, tablet computer, notebook computer, desktop computer,personal digital assistant, gaming device, etc. As noted above, the userA (101 a), user B (101 b), and user C (101 c) are members of one or moretrusted user circles and are also users of the trusted user circleserver (120). In one or more embodiments, the website (104) may be asocial network website, email website, Internet forum website, blogwebsite, or other online community website where user posted informationare shared by users according to access credentials and policies of thewebsite (104). In one or more embodiments, the trusted user circleserver (120) in cooperation with associated client applications (e.g., abrowser plug-in, a mobile app, etc.) installed on user devices providefunctionalities that allow users to join one or more trusted usercircles for sharing user posted documents on the website (104) with anadditional layer of access control. This additional layer of accesscontrol is in addition to and separate from the access credentials andpolicies of the website (104). In one or more embodiments, the trusteduser circle server (120) in cooperation with associated clientapplications installed on user devices provide the aforementionedfunctionalities using the method described in reference to FIG. 2 below.

Turning to each of the components within the trusted user circle server(120), in one or more embodiments of the invention, the trusted usercircle server (120) includes the user manager (122) that is configuredto manage user keys (134) for authenticating user access to the trusteduser circle server (120) and functionalities provided therefrom. In oneor more embodiments, when a user registers to access functionalities ofthe trusted user circle server (120) (e.g., by creating an account onthe trusted user circle server (120)), the user manager (122) generatesa random token (referred to as the static seeding token or SST) for theuser and sends this user specific SST to the user device. In response,the user device particular, a client application executing on the userdevice) generates an encryption key based on the SST and a userattribute (e.g., a password). In one or more embodiments, the encryptionkey is a public and private key pair based on asymmetric cryptography.The public and private keys remain unchanged regardless if the userjoins or exits any trusted user circle and therefore are referred to asstatic keys. Specifically, the public key is referred to as a staticpublic key (SPUK) and the private key is referred to as a static privatekey (SPRK). Once generated, the user device uploads the SPUK to thetrusted user circle server (120) where the user manager (122) stores theuploaded SPUK in the user keys (134). This mechanism ensures that evenif two different users have the same password, their SPUKs are differentand it allows portability of the SPRK among all the user's devices.

As shown in. FIG. 1, the user device A (102 a) generates the key pairSPUK/SPRK A (105 a) and uploads the SPUK portion of the key pair to thetrusted user circle server (120) as the SPUK A (134 a). Similarly, theuser device B (102 b) generates the key pair SPUK/SPRK B (105 b) anduploads the SPUK portion of the key pair to the trusted user circleserver (120) as the SPUK B (134 b). Further, the user device C (102 c)generates the key pair SPUK/SPRK C (105 c) and uploads the SPUK portionof the key pair to the trusted user circle server (120) as the SPUK C(131 c).

In one or more embodiments, access to the trusted user circle server(120) and information stored in the repository (130) requires userauthentication. In one or more embodiments, the users authenticate withthe trusted user circle server (120) using their SPRKs. Since thetrusted user circle server (120) has a copy of all the users' SPUKs, theuser manager (122) sends a random challenge phrase to the user duringauthentication, plus a copy of the previously generated user specificSST if the user device needs to regenerate the SPRK. In response, theuser encrypts a response phrase using his/her SPRK and sends theencrypted response phrase back to the trusted user circle server (120).Accordingly, the user manager (122) decrypts the encrypted responsephrase using the user's SPUK and if the challenge and response phrasesperfectly aligns then the user is authenticated. After beingauthenticated, the user may choose to either to store the SPRK onhis/her user device for future use or to regenerate the SPRK each timethe user accesses the trusted user circle server (120).

In one or more embodiments of the invention, the trusted user circleserver (120) includes the trusted user circle manager (124) that isconfigured to manage the trusted user circle profiles for controllinguser access to posted documents on the website (104) based on theaforementioned additional layer of access control. In one or moreembodiments, the trusted user circle (103 a) is created and organized byan organizing user, such as the user A (101 a). Accordingly, the user A(101 a) is referred to as the organizing user and the user device A (102a) is referred to as the organizing user device. In one or moreembodiments, in response to a circle creation request from the user A(101 a) to create the trusted user circle (103 a), the trusted usercircle manager (124) creates an identifier of the trusted user circle(103 a) and stores the identifier as the circle policy context (CPC)identifier A (133 a) the trusted user circle profile A (136) of thetrusted user circle (103 a).

In one or more embodiments, in response to a member invitation requestfrom the user A (101 a), the trusted user circle manager (124) sends aninvitation to the user device B (102 b) and user device C (102 c) toinvite the user B (101 b) and user C (101 c) to join the trusted usercircle (103 a). Accordingly, the user B (101 b) and user C (1011 c) jointhe trusted user circle (103 a) in response to the invitation. Forexample, one or more of the user B (101 b) and user C (101 c) mayalready be users of the trusted user circle server (120) prior toreceiving the invitation and can readily accept the invitation to jointhe trusted user circle (103 a). In another, example, one or more of theuser B (101 b) and user C (101 c) may not be users of the trusted usercircle (103 a) upon receiving the invitation and will need to registerfor account creation on the trusted user circle server (120) beforebecoming members of the trusted user circle (103 a).

In one or more embodiments, the CPC identifier (133 a) is updated inresponse to one or more pre-determined events, such as any memberexiting the trusted user circle (103 a), or the expiration of apre-determined expiration period. In one or more embodiments, the CPCidentifier (133 a) remains unchanged when any new member joins thetrusted user circle (103 a). In one or more embodiments, the CPCidentifier (133 a) is updated when the user C 101 c) exits the trusteduser circle (103 a). Upon the user C (101 c) exiting, the trusted usercircle (103 a) is updated to become the updated trusted user circle (103b). Accordingly, the trusted user circle manager (124) updates the CPCidentifier (133 a) to generate an updated version of the CPC identifier(133 b). As shown in FIG. 1, this update version is stored in thetrusted user circle profile A (136) as the updated CPC identifier (133b). Additional versions of the CPC identifier (133 a) may continue to begenerated and stored in the trusted user circle profile A (136) as othermembers exit the trusted user circle (103 a) or as pre-determinedexpiration periods expire periodically. In one or more embodiments, asthe membership of the trusted user circle (103 a) evolves due to newmember joining and/or existing member exiting, the trusted user circlemanager (124) keep track of the membership history in the trusted usercircle membership history (131 a). In one or more embodiments, thosemembership change events in the trusted user circle membership history(131 a) and including removal of any exiting member are linked, tocorresponding CPC identifiers, as indicated by the arrows connecting thetrusted user circle membership history (131 a) to the CPC identifier(133 a) and the updated CPC identifier (133 b).

When a new CPC identifier (e.g., CPC identifier (133 a)) or a newversion (e.g., updated CPC identifier (133 b)) is created, a dynamicprivate context key (DPCK) (e.g., DPCK (106)) or an updated version ofthe DPCK (not shown) is generated by the organizing user device (e.g.,user device A (102 a)). In one or more embodiments, the DPCK (106) is apseudo random key that is generated by the user device A (102 a) withthe combination of the CPC identifier (133 a) and the SPRK of user A(101 a). For example, in response to creating the trusted user circle(103 a), the user device A (102 a) may obtain the CPC identifier (133 a)from the trusted user circle manager (124) to generate the DPCK (106).In another example, in response to an indication that the user C (101 c)has exit the trusted user circle (103 a), the user device A (102 a) mayobtain the update CPC identifier (133 b) from the trusted user circlemanager (124) to generate an updated version of the DPCK (106). Suchindication may come from the user A (101 a) processing the removal ofthe user B (101 b) from the trusted user circle (103 a) or from thetrusted user circle manager (124) updating the trusted user circlemembership history (131 a) due to the user C (101 c) exiting the trusteduser circle (103 a). In one or more embodiments, the user device A (102a) may regenerate various different versions of the DPCK (106) byrequesting corresponding versions the CPC identifier (133 a) from thetrusted user circle manager (124).

In one or more embodiments, the trusted user circle server (120) incooperation with the user device A (102 a) distribute various versionsof the DPCK (106) upon creation thereof. Specifically, when the user A(101 a) acts as the organizing user in processing new member additionand/or exiting member removal of the trusted user circle (103 a) and/oran updated circle thereof (e.g., updated trusted user circle (103 b)),the user device A (102 a) downloads SPUKs of all current members of thetrusted user circle (103 a) or updated circles thereof The downloadedSPUKs are used to encrypt the current version of the DPCK (106) forsecure distribution to all current members. In one or more embodiments,the encrypted current version of the DPCK (106) is distributed via thetrusted user circle server (120).

As shown in FIG. 1, upon processing the addition of the user B (101 b)and user C (101 c) as new members to the trusted user circle (103 a),the user device A (102 a) downloads the SPUK B (134 b) and SPUK C (13.4c) to encrypt the DPCK (106) and generates the encrypted DPCK (EDPCK) B(135 b) and the EDPCK C (135 c). The EDPCK B (135 b) and EDPCK C (135 c)are then uploaded to the trusted user circle server (120) for use by theuser B (101 b) and user C (101 c), respectively. In particular, theuploaded EDPCK B (135 b) and EDPCK C (135 c) are stored by the usermanager (122) in the user A keys (106 a) and the user B keys (106 b),respectively where access requires authentication by the user manager(122). In addition, upon processing the removal of the user C (101 c)who exits the trusted user circle (103 a), the user device A (102 a)generates the updated version of the DPCK (106) and downloads the SPUK B(134 b) to encrypt the updated version of the DPCK (106), thusgenerating the updated EDPCK B (136 b) for the user B (101 b). Theupdated EDPCK B (136 b) is then uploaded to the trusted user circleserver (120) and stored by the user manager (122) in the user B keys(106 b). In particular, since the user C (101 c) is not a member of theupdated trusted user circle (103 b), the user device A (101 a) does notgenerate any updated EDPCK using SPUK C (134 c) and does not upload andstore any additional EDPCK in the user C keys (106 c). Although the user(101 a) is the creator of the DPCK (106), in one or more embodiments, anDPCK (106) and the updated version thereof are also encrypted using theSPUK A (134 a) of the user A (101 a) to generate the EDPCK A (135 a) andthe updated EDPACK A. (136 a) for uploading and storing in the user Akeys (106 a). In one or more embodiments, the user manager (122) managesvarious versions of the EDPCK based on corresponding CPC identifiers. Asshown in FIG. 1, the EDPCK A (135 a), EDPCK B (135 b), and EDPCK C (135c) correspond to the trusted user circle (103 a) and are linked to theCPC identifier (133 a) contained in the trusted user circle profile A(131) of the trusted user circle (103 a). Similarly, the updated EDPCK A(136 a) and updated EDPCK B (136 b) correspond to the updated trusteduser circle (103 b) and are linked to the updated CPC identifier (133 b)contained in the trusted user circle profile A (131) of the trusted usercircle (103 a). Based on the user authentication described above, theuser A keys (106 a) is exclusively accessible by the user A (101 a), theuser B keys (106 b) is exclusively accessible by the user B (101 b), theuser C keys (106 c) is exclusively accessible by the user C (101 ac),and so on and so forth.

Based on the EDPCK stored in the user keys (134) and managed by the usermanager (122), any user who is a current member of a particular trusteduser circle may encrypt all documents posted on the website (104) usinga current version of the DPCK retrieved from a current version ofhis/her EDPCK. Specifically, the user requests his/her EDPCK from theuser manager (122) and decrypt the EDPCK using his/her SPRK to retrievethe DPCK. Each encrypted document is then combined with metadatacontaining information (e.g., CPC identifier) of all members of theparticular trusted user circle before the combination is posted on thewebsite (104). The metadata may also contain un-encrypted advertisementor other URL information to facilitate a viewing user to join thetrusted user circle. In one or more embodiments, the metadata isgenerated and combined with the encrypted document by the posting userdevice.

As shown in FIG. 1, prior to the user C (101 c) exiting the trusted usercircle (103 a), the user B (101 b) posted the posted document A (104 a)using his EDPCK B (135 b). In this context, the user B (101 b) isreferred to as a posting user and the user device B (102 b) is referredto as a posting user device. In one or more embodiments, the posteddocument A (104 a) includes an encrypted document and the associatedmetadata where the metadata contains the CPC identifier (133 a). Inaddition, subsequent to the user C (101 c) exiting the trusted usercircle (103 a), the user B (101 b) posted the posted document B (104 b)using his updated. EDPCK B (136 b). In one or more embodiments, theposted document B (104 b) includes another encrypted document and theassociated metadata thereof where the metadata contains the updated CPCidentifier (133 b).

The decryption of a posted document is based on the embedded CPCidentifier. If a user is able to identify, based on the embedded CPCidentifier, and has access to the correct version of the EDPCKcorresponding to the posted document, then the user is able to decryptthe EDPCK using his/her SPRK and in turn decrypt the posted document forviewing. If the user is not associated with the embedded CPC identifier,then his/her EDPCK corresponding to the posted document is nevergenerated and the user will not be able to decrypt the posted documentfor viewing.

As shown in FIG. 1, whether before or after the user C (101 c) exitingthe trusted user circle (103 a), the user C (101 c) is always able toidentify his EDPCK B (135 b) from the CPC identifier (133 a) embedded inthe metadata of the posted document A (104 a). Accordingly, the user C(101 c)uses his/her SPUK to decrypt the EDPCK B (135 b) and retrieve theDPCK (106) for further decrypting the posted document A (104 a). In thiscontext, the user C (101 c) is referred to as a viewing user and theuser device C (102 c) is referred to as a viewing user device. Incontrast, because the posted document B (104 b) is posted after the userC (101 c) exiting the trusted user circle (103 a), the user C (101 c) isnot able to identify any updated EDPCK, from the updated CPC identifier(133 b) embedded in the metadata of the posted document B (104 b), thathe/she can decrypt using his/her SPRK. Accordingly, the user C (101 c)may have access to the posted document B (104 b) but is not able todecrypt for viewing.

Although embodiments described above are based on the public and privatekey pair of asymmetric cryptography, in other embodiments, symmetriccryptography may be used where one encryption key takes place of boththe public key and the private key. In those embodiments, the SPUK andSPRK are the same and referred to as a static encryption key, while DPCKis referred to as a dynamic encryption key.

FIGS. 2A and 2B depicts a flowchart of a method in accordance with oneor more embodiments of the invention. In one or more embodiments of theinvention, one or more of the steps shown in FIGS. 2A and 2B may beomitted, repeated, and/or performed in a different order. Accordingly,embodiments of the invention should not be considered limited to thespecific arrangements of steps shown in FIGS. 2A and 2B. In one or moreembodiments, the method described in reference to FIGS. 2A and 2B may bepracticed using the system (100) described in reference to FIG. 1 above.

FIG. 2A depicts a flowchart (200) of an example method for accessing afirst posted document on a website by members of a trusted user circle.In one or more embodiments, members of the trusted user circle includesat least an organizing user, a posting user, and a viewing user. Whilethe trusted user circle is initiated and organized by the organizinguser, any member of the trusted user circle may post a document on thewebsite and become the posting user for the posted document. In the sameway, any member of the trusted user circle may retrieve a posteddocument for viewing and become the viewing user for the posteddocument.

Initially in Step 201, an organizing user device (used by an organizinguser within the trusted user circle) obtains a circle policy context(CPC) identifier from a trusted user circle server separate from thewebsite. Specifically, the CPC identifier identifies membershipinformation maintained by the trusted user circle server for the trusteduser circle. In one or more embodiments, the CPC identifier is initiallygenerated by the trusted user circle server when the trusted user circleis initiated and organized by the organizing user. Subsequently, the CPCidentifier may be updated as the membership of the trusted user circleevolves with additions of new members and removals of exiting members.

In Step 202, the organizing user device generates a dynamic privatecontext key (DPCK) from a first static private key (SPRK) of theorganizing user and the CPC identifier. Accordingly, the DPCK isprovided to the trusted user circle for all members to encrypt anddecrypt member posted documents on the website. In one or moreembodiments, the DPCK is securely provided to each member of the trusteduser circle via the trusted user circle server using the member'sSPRK/SPUK (static public key) pair based on asymmetric cryptography. Inone or more embodiments, the DPCK is linked with the CPC identifier inthe trusted user circle server and the combination is accessible to allcurrent members of the trusted user circle.

in Step 203, an posting user device (used by a posting user within thetrusted user circle) generates first metadata of a first document, wherethe first metadata identifies the trusted user circle. In one or moreembodiments, the CPC identifier is accessible from the trusted usercircle server to all current members of the trusted user circle. In suchembodiments, the first metadata includes the CPC identifier obtainedfrom the trusted user circle by the posting user device.

In Step 204, the posting user device uses the DPCK of the trusted usercircle to encrypt the first document into the first encrypted document.

In Step 205, the posting user device sends the first encrypted documentassociated with the first metadata to the website, where the firstencrypted document associated with the first metadata is posted on thewebsite as a first posted document.

In Step 206, the viewing user device obtains the first posted documentfrom the website and analyzes the first metadata in the first posteddocument to retrieve the CPC identifier. In one or more embodiments, theviewing user identifies and obtains, from the trusted user circle basedon the viewing user being within the trusted user circle, the DPCKlinked to the retrieved CPC identifier.

In Step 207, in response to identifying the DPCK and based on the DPCK,the viewing user device decrypts the first posted document (inparticular, the first encrypted document included therein) to retrievethe first document and present the first document to the viewing user.

In Step 208, a second posted document is accessed on the website. Inparticular, the second posted document is posted and otherwise accessedsubsequent to a member exiting the trusted user group. Specifically, theexiting member has viewed the first posted document described above andis the viewing user referred to herein. Accordingly, the trusted usergroup becomes the updated trusted user group without the exiting member(i.e., the viewing user referred to herein). As noted above, any of theremaining members of the trusted user circle may also retrieve anyposted document and become another viewing user. However, throughout thedescription of FIGS. 2A and 2B, the term “viewing user” refers to theparticular viewing user described in Steps 206 and 207 above. Details ofaccessing the second posted document after the viewing user exiting thetrusted user circle are described in reference to FIG. 2B below.

As shown in FIG. 2B, in step 211, in response to the viewing userexiting the trusted user circle, the organizing user device obtains anupdated CPC identifier from the trusted user circle server.Specifically, the updated CPC identifier identifies updated membershipinformation maintained by the trusted user circle for the updatedtrusted user circle.

In Step 212, the organizing user device generates the updated DPCK fromthe first SPRK of the organizing user and the updated CPC identifier.Accordingly, the updated DPCK is provided to the updated trusted usercircle for all remaining members to encrypt and decrypt member posteddocuments on the website. In one or more embodiments, the updated DPCKis securely provided to each member of the updated trusted user circlevia the trusted user circle server using the member's SPRK/SPUK (staticpublic key) pair based on asymmetric cryptography. In one or moreembodiments, the updated DPCK is linked with the updated CPC identifierin the trusted user circle server and the combination is accessible toall remaining members of the updated trusted user circle,

In Step 213, the posting user device generates second metadata of asecond document, where the second metadata identifies the updatedtrusted user circle. In one or more embodiments, the updated CPCidentifier is accessible from the trusted user circle server to allremaining members of the updated trusted user circle. In suchembodiments, the second metadata includes the updated CPC identifierobtained from the trusted user circle by the posting user device.

In Step 214, the posting user device uses the updated DPCK to encryptthe second document into the second encrypted document.

In Step 215, the posting user device sends the second encrypted documentassociated with the second metadata to the website, where the secondencrypted document associated with the second metadata is posted on thewebsite as a second posted document.

In Step 216, the viewing user device obtains the second posted documentfrom the website and analyzes the second metadata in the second posteddocument to determine that the viewing user is not authorized to accessthe second document from the website based on the viewing user beingseparate from the updated trusted user circle. In one or moreembodiments, the viewing user device is not able to access the updatedCPC identifier from the trusted user circle server based on the viewinguser being separate from the updated trusted user circle. As a result,the viewing user device is not able to recognize the updated CPCidentifier in the second metadata. Accordingly, the viewing user is notable to identify or obtain, from the trusted user circle server, theupdated DPCK linked to the updated CPC identifier.

In Step 217, in response to determining that the viewing user is notauthorized to access the second document from the website, the viewinguser device presents the second posted document to the viewing userwithout decryption.

Although the description above relates to the viewing user device beingable to decrypt the first encrypted document generated and posted by theposting user, as well as being unable to decrypt the second encrypteddocument generated and posted by the same posting user, in otherexamples, the first encrypted document and the second encrypted documentmay be generated and posted by different members of the trusted usercircle or the updated trusted user circle.

FIGS. 3A and 3B show an example of trusted user circles in accordancewith one or more embodiments of the invention. This example may be basedon the system (100) of FIG. 1 and the method described with respect toFIGS. 2A and 2B above.

FIG. 3A shows a posting user screenshot (301) and a viewing userscreenshot A (302). In particular, the posting user screenshot (301)corresponds to a browser window on a tablet computer (referred to as theposting user device) used by a trusted user circle member Andy (shown asthe posting user (301 b)). Specifically, Andy has posted the document(301 a) in an encrypted format on a social network website. Theencryption is performed by a browser-plugin installed on Andy's tabletcomputer that performs the client portion of theauthentication/encryption/decryption tasks described in reference toFIGS. 1, 2A, and 2B above. The posting user screenshot (301) showsAndy's browser window displaying the social network postings where thedocument (301 a) is displayed in the decrypted format. Again, thedecryption is performed by the browser-plugin installed on Andy'sposting user device.

Further as shown in FIG. 3A, the viewing user screenshot A (302)corresponds to a browser window on a smartphone (referred to as theviewing user device) used by Joe (shown as the viewing user (302 c)) whohas not installed on the smartphone any mobile app that performs theclient portion of the authentication/encryption/decryption tasksdescribed in reference to FIGS. 1, 2A, and 2B above. For example, Joemay not be a member of the trusted user circle where Andy belongs. Inanother example, Joe may be a member or ex-member of the same trusteduser circle where Andy belongs but just bought the smartphone and hasnot had a chance to install the mobile app yet The viewing userscreenshot A (302) shows Joe's browser window displaying Andy's posteddocument on the social network website where Andy's posted document(shown as encrypted document (302 a)) is displayed in the encryptedformat. In addition, a URL link (URL (302 b)) is displayed along withthe encrypted document (302 a) allowing Joe to install the mobile app byclicking on the URL (302 b)). After Joe successfully installed themobile app, the browser window shown as the viewing user screenshot A(302) is redirected as shown in FIG. 3B below.

FIG. 3B shows a viewing user screenshot B (303) and a viewing userscreenshot C (304). In particular, the viewing user screenshot B (303)corresponds to the re-directed browser window on Joe's smartphone afterJoe installed on the smartphone the mobile app that performs the clientportion of the authentication/encryption/decryption tasks described inreference to FIGS. 1, 2A, and 2B above. In one example scenario,although the mobile app is installed, Joe has not joined the trusteduser circle where Andy belongs. In another example scenario, Joe as amember of the same trusted user circle where Andy belongs but has exitthe trusted user circle. In either scenario, the viewing user screenshotB (303) shows Andy's posted document (shown as encrypted document (302a) in FIG. 3A) is replaced by the message (303 a) after the installedmobile app is launched. Specifically, the message (303 a) indicates thatJoe does not have permissions to view Andy's posted document and invitesJoe to join or rejoin the trusted user circle by clicking on the URL(303 b)).

Further as shown in FIG. 3B, the viewing user screenshot C (304)corresponds to a browser window on Joe's smartphone after Joe joins orrejoins the same trusted user circle where Andy belongs, Specifically,the viewing user screenshot C (304) shows Andy's posted document (301 a)is now displayed in the decrypted format. The decryption is performed bythe mobile app just installed on Joe's smartphone that performs theclient portion of the authentication/encryption/decryption tasksdescribed in reference to FIGS. 1, 2A, and 2B above. Similar to theviewing user screenshot C (304), any other current member of thistrusted user circle who has the correct browser-plugin or mobile appinstalled on his/her user device is able to view Andy's posted document(301 a) in the decrypted format.

Embodiments of the invention may be implemented on virtually any type ofcomputer regardless of the platform being used. For example, as shown inFIG. 3B, a computer system (400) includes one or more processor(s) (402)such as a central processing unit (CPU), integrated circuit, or otherhardware processor, associated memory (404) (e.g., random access memory(RAM), cache memory, flash memory, etc.), a storage device (406) (e.g.,a hard disk, an optical drive such as a compact disk drive or digitalvideo disk (DVD) drive, a flash memory stick, etc.), and numerous otherelements and functionalities typical of today's computers (not shown).The computer system (400) may also include input means, such as akeyboard (408), a mouse (410), or a microphone (not shown). Further, thecomputer system (400) may include output means, such as a monitor ((412)(e.g., a liquid crystal display (LCD), a plasma display, or cathode raytube (CRT) monitor). The computer system (400) may be connected to anetwork (414) (e.g., a local area network (LAN), a wide area network(WAN) such as the Internet, or any other similar type of network)) withwired and/or wireless segments via a network interface connection (notshown). Those skilled in the art will appreciate that many differenttypes of computer systems exist, and the aforementioned input and outputmeans may take other forms. Generally speaking, the computer system(400) includes at least the minimal processing, input, and/or outputmeans necessary to practice embodiments of the invention.

Further, those skilled in the art will appreciate that one or moreelements of the aforementioned computer system (400) may be located at aremote location and connected to the other elements over a network.Further, embodiments of the invention may be implemented on adistributed system having a plurality of nodes, where each portion ofthe invention may be located on a different node within the distributedsystem. In one embodiment of the invention, the node corresponds to acomputer system. Alternatively, the node may correspond to a processorwith associated physical memory. The node may alternatively correspondto a processor with shared memory and/or resources. Further, softwareinstructions for performing embodiments of the invention may be storedon a non-transitory computer readable storage medium such as a compactdisc (CD), a diskette, a tape, or any other computer readable storagedevice.

While the invention has been described with respect to a limited numberof embodiments, those skilled in the art, having benefit of thisdisclosure, will appreciate that other embodiments can be devised whichdo not depart from the scope of the invention as disclosed herein.Accordingly, the scope of the invention should be limited only by theattached claims.

What is claimed is:
 1. A method for posting documents on a website, comprising: generating, by a posting user device, first metadata of a first document, wherein the first metadata identifies a trusted user circle comprising a posting user and a viewing user; encrypting, by the posting user device based on a dynamic private context key (DPCK) of the trusted user circle, the first document to generate a first encrypted document, wherein the DPCK is provided to the trusted user circle; sending, by the posting user device to the website, the first encrypted document associated with the first metadata, wherein the first encrypted document associated with the first metadata is posted on the website as a first posted document, wherein the first posted document is obtained from the website by a viewing user device used by the viewing user; generating, by the posting user device, second metadata of a second document, wherein second metadata identifies an updated trusted user circle; encrypting, by the posting user device based on an updated DPCK, the second document to generate a second encrypted document; sending, by the posting user device to the website, the second encrypted document associated with the second metadata, wherein the second encrypted document associated with the second metadata is posted on the website as a second posted document.
 2. The method of claim 1, wherein the updated DPCK is provided to the updated user circle, the updated user circle comprising the user circle without the viewing user.
 3. The method of claim 1, further comprising: obtaining, by an organizing user device used by an organizing user within the trusted user circle, a circle policy context (CPC) identifier from a trusted user circle server separate from the website, wherein the CPC identifier identifies membership information maintained by the trusted user circle server for the trusted user circle; and generating, by the organizing user device, the DPCK from a first static private key (SPRK) of the organizing user and the CPC identifier.
 4. The method of claim 3, further comprising: obtaining, by the organizing user device from the trusted user circle and in response to the viewing user exiting the trusted user circle, an updated CPC identifier identifying updated membership information maintained by the trusted user circle for the updated trusted user circle; and generating, by the organizing user device, the updated DPCK from the first SPRK of the organizing user and the updated CPC identifier.
 5. The method of claim 3, wherein the viewing user joins the trusted user circle in response to an invitation sent by the organizing user device to the viewing user device the via the trusted user circle server.
 6. The method of claim 3, wherein the DPCK is provided to the trusted user circle via the trusted user circle server, and wherein providing the DPCK to the trusted user circle comprises: obtaining, by the organizing user device from the trusted user circle server, a static public key (SPUK) of the viewing user; encrypting, by the organizing user device and based on the SPUK, the DPCK to generate an encrypted DPCK for sending to the viewing user device; and decrypting, by the viewing user device based on a second SPRK of the viewing user, the encrypted DPCK to retrieve the DPCK.
 7. The method of claim 3, further comprising: generating, by the trusted user circle server, the CPC identifier in response to a pre-determined event, wherein the pre-determined event comprises at least one selected from a group consisting of creation of the trusted user circle, member exiting the trusted user circle, and expiration of the DPCK.
 8. A system for viewing user posted documents on a website, comprising: a trusted user circle server separate from the website and configured to: maintain membership information of a trusted user circle, wherein the trusted user circle comprises an posting user and a viewing user; and provide a dynamic private context key (DPCK) of the trusted user circle to members of the trusted user circle; a posting user device used by the posting user and configured to: generate first metadata of a first document, wherein the first metadata identifies the trusted user circle; encrypt, based on the DPCK obtained from the trusted user circle server, the first document to generate a first encrypted document; send, to the website, the first encrypted document associated with the first metadata, wherein the first encrypted document associated with the first metadata is posted on the website as a first posted document; encrypt, based on an updated DPCK obtained from the trusted user circle server, a second document to generate a second encrypted document; and send, to the website, the second encrypted document associated with second metadata, wherein the second encrypted document associated with the second metadata is posted on the website as a second posted document.
 9. The system of claim 8, wherein the updated DPCK is provided to the updated user circle, the updated user circle comprising the user circle without the viewing user.
 10. The system of claim 8, further comprising an organizing user device used by an organizing user within the trusted user circle, wherein the organizing user device is configured to: obtain a circle policy context (CPC) identifier from the trusted user circle server, wherein the CPC identifier identifies the membership information maintained by the trusted user circle server for the trusted user circle; and generate the DPCK from a first static private key (SPRK) of the organizing user and the CPC identifier.
 11. The system of claim 10, the organizing user device further configured to: obtain, from the trusted user circle and in response to the viewing user exiting the trusted user circle, an updated CPC identifier identifying updated membership information maintained by the trusted user circle for the updated trusted user circle; and generate the updated DPCK from the first SPRK of the organizing user and the updated CPC identifier.
 12. The system of claim 10, the trusted user circle server further configured to: receive, from the organizer user device, a request to invite the viewing user to join the trusted user circle; and send, in response to the request, an invitation to the viewing user device to invite the viewing user to join the trusted user circle, wherein the viewing user joins the trusted user circle in response to the invitation.
 13. The system of claim 10, wherein the organizing user device is further configured to: obtain, from the trusted user circle server, a static public key (SPUK) of the viewing user; and encrypt, by the organizing user device based on the SPUK, the DPCK to generate an encrypted DPCK for sending to the viewing user device, and wherein the viewing user device is further configured to: decrypt, based on a second SPRK of the viewing user, the encrypted DPCK to retrieve the DPCK.
 14. The system of claim 10, the trusted user circle server further configured to: generate the CPC identifier in response to a pre-determined event, wherein the pre-determined event comprises at least one selected from a group consisting of creation of the trusted user circle, member exiting the trusted user circle, and expiration of the DPCK.
 15. The system of claim 10, the trusted user circle server further configured to: authenticate, based on a first static public key (SPUK) associated with the first SPRK of the organizing user, the organizing user to access the trusted user circle server; authenticate, based on a second SPUK associated with a second SPRK of the posting user, the posting user to access the trusted user circle server; and authenticate, based on a third SPUK associated with a third SPRK of the viewing user, the viewing user to access the trusted user circle server.
 16. A non-transitory computer readable medium storing instructions for viewing user posted documents on a website, the instructions when executed by a computer processor comprising functionality to: generate, by an posting user device used by an posting user, first metadata of a first document, wherein the first metadata identifies a trusted user circle comprising the posting user and a viewing user; encrypt, by the posting user device based on a dynamic private context key (DPCK) of the trusted user circle, the first document to generate a first encrypted document, wherein the DPCK is provided to the trusted user circle; send, by the posting user device to the website, the first encrypted document associated with the first metadata, wherein the first encrypted document associated with the first metadata is posted on the website as a first posted document, wherein the first posted document is obtained from the website by a viewing user device used by the viewing user; generate, by the posting user device, second metadata of a second document, wherein the second metadata identifies an updated trusted user circle; encrypt, by the posting user device based on an updated DPCK, the second document to generate a second encrypted document; send, by the posting user device to the website, the second encrypted document associated with the second metadata, wherein the second encrypted document associated with the second metadata is posted on the website as a second posted document.
 17. The non-transitory computer readable medium of claim 16, wherein the updated DPCK is provided to the updated user circle, the updated user circle comprising the user circle without the viewing user.
 18. The non-transitory computer readable medium of claim 16, the instructions when executed by the computer processor further comprising functionality to: obtain, by an organizing user device used by an organizing user within the trusted user circle, a circle policy context (CPC) identifier from a trusted user circle server separate from the website, wherein the CPC identifier identifies membership information maintained by the trusted user circle server for the trusted user circle; and generate, by the organizing user device, the DPCK from a first static private key (SPRK) of the organizing user and the CPC identifier.
 19. The non-transitory computer readable medium of claim 18, the instructions when executed by the computer processor further comprising functionality to: obtain, by the organizing user device from the trusted user circle and in response to the viewing user exiting the trusted user circle, an updated CPC identifier identifying updated membership information maintained by the trusted user circle for the updated trusted user circle; and generate, by the organizing user device, the updated DPCK from the first SPRK of the organizing user and the updated CPC identifier.
 20. The non-transitory computer readable medium of claim 18, wherein the DPCK is provided to the trusted user circle via the trusted user circle server, and wherein providing the DPCK to the trusted user circle comprises: obtaining, by the organizing user device from the trusted user circle server, a static public key (SPUK) of the viewing user; encrypting, by the organizing user device and based on the SPUK, the DPCK to generate an encrypted DPCK for sending to the viewing user device; and decrypting, by the viewing user device based on a second SPRK of the viewing user, the encrypted DPCK to retrieve the DPCK. 